package service

import (
	"errors"
	"project1/db"
	"project1/dbmodel"
	"project1/validate"
)

type BusinessService struct{}

// 查询账号列表
func (e *BusinessService) GetAccountList(body validate.AccountListParam) (any, error) {
	var data []dbmodel.User

	db := db.GormDB.Table("user")

	// 用户id查询
	if body.UserName != "" {
		db = db.Where("user_name LIKE ?", "%"+body.UserName+"%")
	}

	// 状态 0-全部 1-正常 2-拉黑
	if body.Status != 0 {
		db = db.Where("status = ?", body.Status)
	}

	// 在线状态 在线状态 不传-全部 0-离线 1-在线
	if body.OnlineStatus != nil {
		db = db.Where("online_status = ?", body.OnlineStatus)
	}

	// 登录开始时间
	if body.StartTime != "" {
		db = db.Where("last_login_time >= ?", body.StartTime)
	}

	// 登录结束时间
	if body.EndTime != "" {
		db = db.Where("last_login_time <= ?", body.EndTime)
	}

	err := db.Order("id desc").Find(&data).Error
	if err != nil {
		return nil, errors.New("查询失败:" + err.Error())
	}

	return data, nil
}
